Upgrade askar-anoncreds endpoints and unify tenant-ui (WebVH + Indy)#1804
Upgrade askar-anoncreds endpoints and unify tenant-ui (WebVH + Indy)#1804
Conversation
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Deployment URLs ready for review. |
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
There was a problem hiding this comment.
Pull request overview
This PR upgrades the askar-anoncreds endpoint support and unifies the tenant-ui to support both WebVH and Indy identifiers within the same interface. The changes enable askar-anoncreds wallets to work with both Indy-based and WebVH-based credentials simultaneously.
Key changes include:
- Unified DID display showing both Indy public DIDs and WebVH DIDs in a single table
- Enhanced schema and credential definition storage to support both Indy and AnonCreds formats
- Improved revocation handling with automatic endpoint detection based on credential format
- Added validation for both Indy and AnonCreds schema/credential definition ID formats
Reviewed changes
Copilot reviewed 25 out of 25 changed files in this pull request and generated 20 comments.
Show a summary per file
| File | Description |
|---|---|
| services/tenant-ui/frontend/src/views/Identifiers.vue | Unified DID display to show both Indy and WebVH identifiers with custom sorting to keep public Indy DID at top |
| services/tenant-ui/frontend/src/store/tenantStore.ts | Updated isIssuer check to allow issuing when connected to either Indy OR WebVH |
| services/tenant-ui/frontend/src/store/issuerStore.ts | Enhanced revocation to auto-detect credential format and use appropriate AnonCreds or Indy endpoint |
| services/tenant-ui/frontend/src/store/governanceStore.ts | Added functions to list and merge schemas/cred defs from both Indy and AnonCreds endpoints with manual storage fallback |
| services/tenant-ui/frontend/src/store/index.ts | Exported useCommonStore for consistent imports |
| services/tenant-ui/frontend/src/store/utils/fetchItem.ts | Added URL encoding for IDs to handle special characters like colons and slashes |
| services/tenant-ui/frontend/src/components/verifier/createPresentationRequest/CreateRequestForm.vue | Auto-determine presentation request filter type based on wallet type |
| services/tenant-ui/frontend/src/components/layout/Header.vue | Updated import path for useCommonStore |
| services/tenant-ui/frontend/src/components/issuance/schemas/Schemas.vue | Simplified to use unified storage endpoints for both wallet types |
| services/tenant-ui/frontend/src/components/issuance/schemas/CreateSchemaForm.vue | Enhanced issuer dropdown to show both Indy and WebVH DIDs |
| services/tenant-ui/frontend/src/components/issuance/schemas/CreateSchema.vue | Updated to load wallet DIDs instead of WebVH config |
| services/tenant-ui/frontend/src/components/issuance/credentials/RevokeCredentialForm.vue | Added credential format detection to use correct revocation endpoint |
| services/tenant-ui/frontend/src/components/issuance/credentials/OfferCredentialForm.vue | Enhanced schema lookup with fallback to AnonCreds endpoint and improved error handling |
| services/tenant-ui/frontend/src/components/issuance/credentials/OfferCredential.vue | Simplified to use unified storage endpoints |
| services/tenant-ui/frontend/src/components/issuance/credentials/EnterCredentialValues.vue | Added schema validation and support for both Indy and AnonCreds attribute formats |
| services/tenant-ui/frontend/src/components/issuance/credentialDefinitions/CredentialDefinitions.vue | Simplified to use unified storage endpoints for both wallet types |
| services/tenant-ui/frontend/src/components/issuance/credentialDefinitions/CreateCredentialDefinition.vue | Updated to load wallet DIDs instead of WebVH config |
| services/tenant-ui/frontend/src/plugins/i18n/locales/en.json | Added "filterType" translation keys |
| services/tenant-ui/frontend/src/helpers/constants.ts | Added URL encoding to storage item paths and new AnonCreds revocation endpoint |
| plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/schema_storage_service.py | Enhanced to support both Indy ledger and AnonCreds registry schema retrieval with retry logic |
| plugins/traction_innkeeper/traction_innkeeper/v1_0/schema_storage/models.py | Updated validation to accept both Indy and AnonCreds schema ID formats |
| plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/routes.py | Added POST endpoint for manually adding credential definitions to storage |
| plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/models.py | Updated validation to accept both Indy and AnonCreds credential definition ID formats |
| plugins/traction_innkeeper/traction_innkeeper/v1_0/creddef_storage/creddef_storage_service.py | Enhanced to support both Indy ledger and AnonCreds registry credential definition retrieval |
| plugins/traction_innkeeper/traction_innkeeper/v1_0/tests/test_creddef_storage_routes.py | Updated test to expect 4 routes instead of 3 after adding POST endpoint |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
services/tenant-ui/frontend/src/components/issuance/schemas/CreateSchemaForm.vue
Outdated
Show resolved
Hide resolved
...ant-ui/frontend/src/components/issuance/credentialDefinitions/CreateCredentialDefinition.vue
Outdated
Show resolved
Hide resolved
services/tenant-ui/frontend/src/components/issuance/credentials/RevokeCredentialForm.vue
Outdated
Show resolved
Hide resolved
services/tenant-ui/frontend/src/components/issuance/schemas/CreateSchemaForm.vue
Show resolved
Hide resolved
services/tenant-ui/frontend/src/components/issuance/schemas/CreateSchemaForm.vue
Outdated
Show resolved
Hide resolved
services/tenant-ui/frontend/src/components/issuance/credentials/RevokeCredentialForm.vue
Outdated
Show resolved
Hide resolved
services/tenant-ui/frontend/src/components/issuance/credentials/RevokeCredentialForm.vue
Outdated
Show resolved
Hide resolved
services/tenant-ui/frontend/src/components/issuance/schemas/Schemas.vue
Outdated
Show resolved
Hide resolved
cc5ae75 to
38c779a
Compare
…eateSchemaForm.vue Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
…s/RevokeCredentialForm.vue Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
…eateSchemaForm.vue Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
…s/RevokeCredentialForm.vue Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
…hemas.vue Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
…s/RevokeCredentialForm.vue Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
38c779a to
a18fa0c
Compare
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca>
|
While reviewing, please have a look at the webvh workshop: |
loneil
left a comment
There was a problem hiding this comment.
I regression tested existing askar wallet tenant setup-config-issue-verify-revoke flows.
Tried out upgrading a wallet after that to webvh.
Went through the webvh workshop (the Tenant UI part at least) and everything worked successfully.
No description provided.